<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 *
 * UPDATE `div_soft`.`usuarios` SET `username` = 'cpf2',
    `senha` = '1' WHERE `usuarios`.`cpf` = 'cpf';

 *
 */

class Usuario {

    var $nome = null;
    var $username = null;
    var $senha = null;
    var $nivel = null;
    var $cpf = null;
    var $rg = null;
    var $curso = null;
    var $periodo = null;
    var $endereco = null;
    var $bairro = null;
    var $cidade = null;
    var $cep = null;
    var $telResidencial = null;
    var $celular = null;
    var $email = null;
    var $dMysql = null;
    var $array = null;

    /**
     *
     * @param <type> $array Se for array cria usuario com dados, se for numerico
     * considera como cpf e pega no banco dados.
     */
    function __construct($data = null) {
        $ds = DIRECTORY_SEPARATOR;
        include_once $path = $_SERVER['DOCUMENT_ROOT'] . $ds . "DivSoft" . $ds . "Basicas" . $ds . "database" . $ds . "DMysql.php";
        $this->dMysql = new DMysql();
        if (is_array($data)) {
            $this->mountFromArray(d);
        } else if(is_numeric($data)) {
            $array = $this->dMysql->getUser($data);
            $this->mountFromArray($array);
        } else {
            $this->array = array();
        }
    }

    private function mountFromArray($array){
        $this->nome = $array['nome'];
        $this->username = $array['username'];
        $this->senha = $array['senha'];
        $this->nivel = $array['nivel'];
        $this->cpf = $array['cpf'];
        $this->rg = $array['rg'];
        $this->curso = $array['curso'];
        $this->periodo = $array['periodo'];
        $this->endereco = $array['endereco'];
        $this->bairro = $array['bairro'];
        $this->cidade = $array['cidade'];
        $this->cep = $array['cep'];
        $this->telResidencial = $array['telResidencial'];
        $this->celular = $array['celular'];
        $this->email = $array['email'];
    }

    /**
     * 
     */
    /**
     * Salva os dados do usuário atual no banco de dados
     * e retorna true caso tenha salvo com sucesso no banco,
     * false caso contrário
     * 
     * @return <Boolean> Salvou
     */
    function salvarUsuario() {
        if($this->dMysql->hasCPF(trim($this->cpf))){
            return false;
        } else {
            $this->dMysql->saveUser($this->array);
            return true;
        }
    }

    /**
     *
     * @param <Usuario> Usuario a ser atualizado.
     * @return <Boolean> Se o update deu erro, retorna a mensagem de erro
     */
    function editarDados($dados) {
        $update = array();
        $update['nome'] = $dados['nome'];
        $update['username'] = $dados['nome'];
        $update['senha'] = $dados['senha'];
        //$update['nivel'] = $dados['nome'];
        //$update['cpf'] = $dados['nome'];
        //$update['rg'] = $dados['rg'];
        $update['curso'] = $dados['curso'];
        $update['periodo'] = $dados['periodo'];
        $update['endereco'] = $dados['endereco'];
        $update['bairro'] = $dados['bairro'];
        $update['cidade'] = $dados['cidade'];
        $update['cep'] = $dados['cep'];
        $update['telResidencial'] = $dados['telResidencial'];
        $update['celular'] = $dados['celular'];
        $update['email'] = $dados['email'];
        $editado = $this->dMysql->updateUser($update, $_SESSION['cpf']);
        return $editado;
    }

    function getUsuario($cpf){
        if(!isset ($cpf) || is_nan($cpf)){
            return false;
        }
    }

    function toString() {
        return print_r($this->array);
    }

    function verificarLogin($cpf, $senha) {
        $usuarioDados = $this->dMysql->verifyUser($cpf, $senha);
        $retorno = null;
        if (isset ($usuarioDados)) {
            return array('nome'=> $usuarioDados["nome"], 
                'cpf'=>$usuarioDados["cpf"],
                'nivel'=>$usuarioDados["nivel"]);
        }
        return $retorno;
    }

}

?>
